﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using GalaxyTranslator.EntityDataModel;

namespace GalaxyTranslator.Model
{
    public static class DataLayer
    {
		static DataLayer()
		{
			// some change 1 comment change 2			
			CustomerRoleName = "Customer";
		}

	    public static string CustomerRoleName { get; private set; }



		/// <summary>
		/// Возвращает экземпляр класса MyUser по имени пользователя(логину).
		/// </summary>
		/// <param name="name"></param>
		/// <returns></returns>
		public static MyUser GetUserByName(string name)
		{
			using (var context = new GalaxyTranslatorEntities())
			{
				return context.MyUsers.FirstOrDefault(u => u.Login == name);
			}
		}

        public static IList<Language> GetAlLanguages()
        {
            using (var context = new GalaxyTranslatorEntities())
            {
                return context.Languages.ToList();
            }
        } 

#region Роли Roles

		/// <summary>
		/// Возвращает роль по id.
		/// </summary>
		/// <param name="id"></param>
		/// <returns></returns>
		public static Role GetRoleById(int id)
		{
			using (var context = new GalaxyTranslatorEntities())
			{
				return context.Roles.FirstOrDefault(r => r.Id == id);
			}
		}

		/// <summary>
		/// Возвращает список всех ролей.
		/// </summary>
		/// <returns></returns>
		public static IList<Role> GetAllRoles()
		{
			using (var context = new GalaxyTranslatorEntities())
			{
				return context.Roles.ToList();
			}
		}

		/// <summary>
		/// Возвращает список всех ролей кроме заказчика.
		/// </summary>
		/// <returns></returns>
		public static IList<Role> GetAllRolesExceptCustomer()
		{
			using (var context = new GalaxyTranslatorEntities())
			{
				return context.Roles.Where(r => r.Name != "Customer").ToList();
			}
		}

#endregion

#region Заказы Orders

		/// <summary>
		/// Возвращает все заказы.
		/// </summary>
		/// <returns></returns>
	    public static IList<Order> GetAllOrders()
	    {
			using (var context = new GalaxyTranslatorEntities())
			{
				return context.Orders.ToList();
			}
	    }

		/// <summary>
		/// Добавляет новый заказ.
		/// </summary>
		/// <param name="o"></param>
		public static void AddNewOrder(Order o)
		{
			using (var context = new GalaxyTranslatorEntities())
			{
				context.Orders.Add(o);
				context.SaveChanges();
			}
		}
    }

#endregion
}